home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 8 / FM Towns Free Software Collection 8.iso / t_os / cdck201 / cdck201.bas < prev    next >
BASIC Source File  |  1994-06-01  |  44KB  |  1,272 lines

  1. 10 '***********************************
  2. 20 '* CDCHECK.BAS Copyright A.Okuyama *
  3. 30 '*  CD-DA表面検査プログラム   *
  4. 40 '* 1992. 3.16  Ver 2.01 1994. 1.31 *
  5. 50 '***********************************
  6. 60 STOP OFF
  7. 70 CLEAR
  8. 80 RETRY    =   0
  9. 90 DEF_FILE$="CDCK.DEF"     '***** 初期設定ファイル名
  10. 100 IMG_FILE$="CDCK.TIF"     '***** 16色イメージ出力ファイル名
  11. 110 WHP_FILE$="CKW#####.TIF" '***** WHIPSイメージ出力ファイル名
  12. 120 CDL_FILE$="WHIPS4.CDL"   '***** WHIPS.CDLのフルパス名
  13. 130 TMP_FILE$="WHIPSTMP.CDL" '***** WHIPS用仮CDLファイル名
  14. 140 LOG_FILE$="CDCK.LOG"     '***** 検査ログ・ファイル名
  15. 150 RETRYSEC =  15           '***** 再検査最大遡及秒数
  16. 160 RETRYMAX =   5           '***** エラー検出時の繰り返し検査回数
  17. 170 START    =   0           '***** 開始時コメント    (0:OFF, 1:ON)
  18. 180 ENDMODE  =   0           '***** 終了時電源OFF     (0:OFF, 1:ON)
  19. 190 CDIMAGE  =   1           '***** CDイメージ表示  (0:OFF, 1:ON)
  20. 200 DVX      = 439           '***** CDイメージ中心X座標
  21. 210 DVY      = 300           '***** CDイメージ中心Y座標
  22. 220 CDIMFILE =   0           '***** 16色イメージ出力  (0:OFF, 1:ON)
  23. 230 IMGLZW   =   1           '***** 16色イメージ圧縮  (0:OFF, 1:ON)
  24. 240 WHIPFILE =   1           '***** WHIPSイメージ出力 (0:OFF, 1:ON)
  25. 250 WHPLZW   =   1           '***** WHIPSイメージ圧縮 (0:OFF, 1:ON)
  26. 260 WCDLFILE =   1           '***** WHIPS.CDL自動編集 (0:OFF, 1:ON)
  27. 270 CDLEDT   =   0           '***** 新規CDL追加       (0:OFF, 1:ON)
  28. 280 ELPRN    =   1           '***** プリンター出力    (0:OFF, 1:ON)
  29. 290 CDCK_LOG =   1           '***** 検査ログ          (0:OFF, 1:ON)
  30. 300 CNTCKS   =   2           '***** 計数検査初期設定時間(秒)
  31. 310 XSCNT    =   2           '***** 計数検査誤差範囲設定(±計数)
  32. 320 MTR      = 200           '***** 最大トラック数
  33. 330 DIM CDI%(5),CDS%(8)
  34. 340 DIM TSSEC(MTR),TRKTIME$(MTR),ETRCOLOR(MTR),DVSTFLM(MTR)
  35. 350 DIM COMMENT$(24),G(15),R(15),B(15),ETRTIME$(MTR)
  36. 360 DIM CDLTIME$(MTR),CDLTI$(MTR)
  37. 370 CDLNO=0
  38. 380 GOSUB *CDL_INZ
  39. 390 FOR C=0 TO 15
  40. 400     READ G(C),R(C),B(C)
  41. 410 NEXT C
  42. 420 DATA  48,  0, 16 '***** バック・グラウンドの緑色
  43. 430 DATA  68, 16, 32 '***** 縁の緑色
  44. 440 DATA  80, 32, 48 '***** 最大記録領域の緑色
  45. 450 DATA  80, 80, 80 '***** 濃い灰色
  46. 460 DATA  16, 48, 48 '***** 薄紫
  47. 470 DATA   0, 80, 80 '***** 紫
  48. 480 DATA  96, 96, 96 '***** 薄い灰色
  49. 490 DATA   0,  0, 80 '***** 青(データ・トラック)
  50. 500 DATA 112,  0,112 '***** 水(検査中のトラック)
  51. 510 DATA   0,  0,  0
  52. 520 DATA   0,  0,  0
  53. 530 DATA   0,  0,  0
  54. 540 DATA 176,176,  0 '***** 黄(WHIPSイメージ文字用)
  55. 550 DATA   0,  0,176 '***** 青(タイトルバー下地)
  56. 560 DATA   0, 96, 96 '***** 紫(タイトルバー下地)
  57. 570 DATA   0,176,  0 '***** 赤(タイトルバー下地)
  58. 580 MOUSE 0
  59. 590 MOUSE 1,,,0
  60. 600 GOSUB *DEF_LOAD
  61. 610 START    = ABS( START    = 0 ) '反転
  62. 620 ENDMODE  = ABS( ENDMODE <> 0 )
  63. 630 CDIMAGE  = ABS( CDIMAGE  = 0 ) '反転
  64. 640 CDIMFILE = ABS( CDIMFILE = 0 ) '反転
  65. 650 IMGLZW   = ABS( IMGLZW  <> 0 )
  66. 660 WHIPFILE = ABS( WHIPFILE = 0 ) '反転
  67. 670 WHPLZW   = ABS( WHPLZW  <> 0 )
  68. 680 WCDLFILE = ABS( WCDLFILE = 0 ) '反転
  69. 690 CDLEDT   = ABS( CDLEDT   = 0 ) '反転
  70. 700 ELPRN    = ABS( ELPRN    = 0 ) '反転
  71. 710 CDCK_LOG = ABS( CDCK_LOG = 0 ) '反転
  72. 720 IF RETRYMAX<1 THEN RETRYMAX=1
  73. 730 CDCKW$   = WHP_FILE$
  74. 740 CONSOLE 0,25,0
  75. 750 *MAIN:'*****************************
  76. 760 SCREEN 0
  77. 770 SCREEN@ 0
  78. 780 VIEW (0,0)-(639,479)
  79. 790 FOR C=0 TO 15
  80. 800     PALETTE C,[G(C),R(C),B(C)]
  81. 810 NEXT C
  82. 820 ON ERROR GOTO *ERRLOOP
  83. 830 PMTIME$="24:00:00"
  84. 840 FOR C=0 TO MTR
  85. 850     TSSEC(C)=0
  86. 860     TRKTIME$(C)=""
  87. 870     ETRCOLOR(C)=0
  88. 880     ETRTIME$(C)=""
  89. 890 NEXT C
  90. 900 COLOR 0,%0,%0
  91. 910 CLS
  92. 920 GOSUB *PANEL
  93. 930 LINE (0,19)-(639, 25),PSET,%13,BF,%13
  94. 940 LINE (0,26)-(639, 29),PSET,%14,BF,%14
  95. 950 LINE (0,30)-(639, 37),PSET,%15,BF,%15
  96. 960 IF START=0 THEN
  97. 970     DUMMY=MOUSE(4,1)
  98. 980     GOSUB *COMMENT
  99. 990     DUMMY=MOUSE(4,1)
  100. 1000     START=1
  101. 1010 ENDIF
  102. 1020 IF I$=CHR$(&H1B) THEN
  103. 1030     GOSUB *ENDING
  104. 1040     CLEAR
  105. 1050     SYSTEM                          '***** プログラム終了 *****
  106. 1060 ENDIF
  107. 1070 EP=1
  108. 1080 GOSUB *CDDINIT    '***** CDドライブ初期化 *****
  109. 1090 CD STOP
  110. 1100 EP=0
  111. 1110 GOSUB *INF
  112. 1120 LPRN=1
  113. 1130 IF ELPRN=0 THEN GOSUB *LPRN
  114. 1140 LPRN=0
  115. 1150 GOSUB *TRKTIME
  116. 1160 IF CDI%(1)=2 THEN
  117. 1170     ETRCOLOR(1)=3
  118. 1180     GOSUB *STIME
  119. 1190     GOTO *RES
  120. 1200 ENDIF
  121. 1210 GOSUB *STIME
  122. 1220 GOSUB *START
  123. 1230 IF ENDMODE=1 THEN
  124. 1240     GOSUB *ENDING
  125. 1250     CLEAR
  126. 1260     OUT &H22,&H40                   '***** 検査終了後 電源OFF *****
  127. 1270 ENDIF
  128. 1280 *RES:'***** 再スタート *****
  129. 1290 LOCATE 5,3
  130. 1300 COLOR 6
  131. 1310 PRINT "《 [RETURN][実行]を押すと検査を開始します。[ESC]を押すと終了します。》"
  132. 1320 GOSUB *PANEL
  133. 1330 IF (MOUSE(2,0) AND NOT(MOUSE(2,1))) OR PTRIG(1)=4 THEN
  134. 1340     GOTO *MAIN
  135. 1350 ENDIF
  136. 1360 IF (MOUSE(2,1) AND NOT(MOUSE(2,0))) OR PTRIG(1)=1 THEN
  137. 1370     GOSUB *ENDING
  138. 1380     CLEAR
  139. 1390     SYSTEM                          '***** プログラム終了 *****
  140. 1400 ENDIF
  141. 1410 I$=INKEY$
  142. 1420 IF I$="" THEN *RES
  143. 1430 IF I$=CHR$(27) THEN
  144. 1440     GOSUB *ENDING
  145. 1450     CLEAR
  146. 1460     SYSTEM                          '***** プログラム終了 *****
  147. 1470 ENDIF
  148. 1480 IF I$=CHR$(13) THEN
  149. 1490     GOTO *MAIN
  150. 1500 ELSE
  151. 1510     GOTO *RES
  152. 1520 ENDIF
  153. 1530 *DEF_LOAD:'***** DEFファイル読み込み *****
  154. 1540 ON ERROR GOTO *DEFERROR
  155. 1550 EP=1
  156. 1560 OPEN DEF_FILE$ FOR INPUT AS #1
  157. 1570 EP=0
  158. 1580 *NEXT_DEF:'***** 次行読み込み *****
  159. 1590 IF EOF(1) THEN *EODEF
  160. 1600 LINE INPUT #1,DUM$
  161. 1610 IF KINSTR(DUM$,"'") THEN
  162. 1620     DUM$=KLEFT$(DUM$,KINSTR(KACNV$(DUM$),"'")-1)
  163. 1630 ENDIF
  164. 1640 IF KINSTR(KACNV$(DUM$),"=")=0 THEN *NEXT_DEF
  165. 1650 ITEM$=KLEFT$(DUM$,KINSTR(KACNV$(DUM$),"=")-1)
  166. 1660 DAT$=KMID$(DUM$,KINSTR(KACNV$(DUM$),"=")+1,KLEN(DUM$)-KINSTR(KACNV$(DUM$),"="))
  167. 1670 IF KLEFT$(KACNV$(DAT$),1)=" " THEN
  168. 1680 *LTRIM:                          '***** LTRIM *****
  169. 1690     DAT$=KMID$(DAT$,2,KLEN(DAT$))
  170. 1700     IF KLEFT$(KACNV$(DAT$),1)=" " THEN *LTRIM
  171. 1710 ENDIF
  172. 1720 IF KINSTR(KACNV$(DAT$)," ") THEN         '***** RTRIM *****
  173. 1730     DAT$=KLEFT$(DAT$,KINSTR(KACNV$(DAT$)," ")-1)
  174. 1740 ENDIF
  175. 1750 'PRINT ":";ITEM$;":";DAT$;":"'***** CHECK POINT *****
  176. 1760 IF INSTR(ITEM$,"IMG_FILE$") THEN '***** 16色イメージ・ファイル名
  177. 1770     IMG_FILE$=DAT$
  178. 1780 ENDIF
  179. 1790 IF INSTR(ITEM$,"WHP_FILE$") THEN '***** WHIPS用イメージ・ファイル名
  180. 1800     WHP_FILE$=DAT$
  181. 1810 ENDIF
  182. 1820 IF INSTR(ITEM$,"CDL_FILE$") THEN '***** WHIPS4.CDLのフルパス名
  183. 1830     CDL_FILE$=DAT$
  184. 1840 ENDIF
  185. 1850 IF INSTR(ITEM$,"TMP_FILE$") THEN '***** WHIPS用仮CDLファイル名
  186. 1860     TMP_FILE$=DAT$
  187. 1870 ENDIF
  188. 1880 IF INSTR(ITEM$,"LOG_FILE$") THEN '***** 検査ログ・ファイル名
  189. 1890     LOG_FILE$=DAT$
  190. 1900 ENDIF
  191. 1910 IF INSTR(ITEM$,"RETRYSEC") THEN '***** 再検査最大遡及秒数
  192. 1920     RETRYSEC=VAL(DAT$)
  193. 1930 ENDIF
  194. 1940 IF INSTR(ITEM$,"RETRYMAX") THEN '***** エラー検出時の繰り返し検査回数
  195. 1950     RETRYMAX=VAL(DAT$)
  196. 1960 ENDIF
  197. 1970 IF INSTR(ITEM$,"START") THEN    '***** 開始時コメント(0:ON, 1:OFF)
  198. 1980     START=VAL(DAT$)
  199. 1990 ENDIF
  200. 2000 IF INSTR(ITEM$,"ENDMODE") THEN  '***** 0:SYSTEM, 1:POFF
  201. 2010     ENDMODE=VAL(DAT$)
  202. 2020 ENDIF
  203. 2030 IF INSTR(ITEM$,"CDIMAGE") THEN  '***** CDイメージ表示(0:ON,1:OFF)
  204. 2040     CDIMAGE=VAL(DAT$)
  205. 2050 ENDIF
  206. 2060 IF INSTR(ITEM$,"DVX") THEN      '***** CDイメージ中心X座標
  207. 2070     DVX=VAL(DAT$)
  208. 2080 ENDIF
  209. 2090 IF INSTR(ITEM$,"DVY") THEN      '***** CDイメージ中心Y座標
  210. 2100     DVY=VAL(DAT$)
  211. 2110 ENDIF
  212. 2120 IF INSTR(ITEM$,"CDIMFILE") THEN '***** 16色イメージ出力(0:ON, 1:OFF)
  213. 2130     CDIMFILE=VAL(DAT$)
  214. 2140 ENDIF
  215. 2150 IF INSTR(ITEM$,"IMGLZW") THEN   '***** 16色イメージ圧縮(0:OFF, 1:ON)
  216. 2160     IMGLZW=VAL(DAT$)
  217. 2170 ENDIF
  218. 2180 IF INSTR(ITEM$,"WHIPFILE") THEN '***** WHIPSイメージ出力(0:ON, 1:OFF)
  219. 2190     WHIPFILE=VAL(DAT$)
  220. 2200 ENDIF
  221. 2210 IF INSTR(ITEM$,"WHPLZW") THEN   '***** WHIPSイメージ圧縮(0:OFF, 1:ON)
  222. 2220     WHPLZW=VAL(DAT$)
  223. 2230 ENDIF
  224. 2240 IF INSTR(ITEM$,"WCDLFILE") THEN '***** WHIPS4.CDL自動編集(0:ON,1:OFF)
  225. 2250     WCDLFILE=VAL(DAT$)
  226. 2260 ENDIF
  227. 2270 IF INSTR(ITEM$,"CDLEDT") THEN   '***** 新規WHIPS4.CDL追加(0:ON,1:OFF)
  228. 2280     CDLEDT=VAL(DAT$)
  229. 2290 ENDIF
  230. 2300 IF INSTR(ITEM$,"ELPRN") THEN    '***** プリンター出力(0:ON, 1:OFF)
  231. 2310     ELPRN=VAL(DAT$)
  232. 2320 ENDIF
  233. 2330 IF INSTR(ITEM$,"CDCK_LOG") THEN '***** 検査ログ      (0:ON, 1:OFF)
  234. 2340     CDCK_LOG=VAL(DAT$)
  235. 2350 ENDIF
  236. 2360 IF INSTR(ITEM$,"CNTCKS") THEN   '***** 計数検査初期設定時間(秒)
  237. 2370     CNTCKS=VAL(DAT$)
  238. 2380 ENDIF
  239. 2390 IF INSTR(ITEM$,"XSCNT") THEN    '***** 計数検査誤差範囲設定(±計数)
  240. 2400     XSCNT=VAL(DAT$)
  241. 2410 ENDIF
  242. 2420 IF INSTR(ITEM$,"MTR") THEN      '***** 最大トラック数
  243. 2430     MTR=VAL(DAT$)
  244. 2440 ENDIF
  245. 2450 IF INSTR(ITEM$,"G(") THEN       '***** Gカラー
  246. 2460     G(VAL(MID$(ITEM$,INSTR(ITEM$,"G(")+2,2)))=VAL(DAT$)
  247. 2470 ENDIF
  248. 2480 IF INSTR(ITEM$,"R(") THEN       '***** Rカラー
  249. 2490     R(VAL(MID$(ITEM$,INSTR(ITEM$,"R(")+2,2)))=VAL(DAT$)
  250. 2500 ENDIF
  251. 2510 IF INSTR(ITEM$,"B(") THEN       '***** Bカラー
  252. 2520     B(VAL(MID$(ITEM$,INSTR(ITEM$,"B(")+2,2)))=VAL(DAT$)
  253. 2530 ENDIF
  254. 2540 GOTO *NEXT_DEF
  255. 2550 *EODEF:'*****
  256. 2560 CLOSE
  257. 2570 RETURN
  258. 2580 *DEFERROR:'***** DEFファイル読み込みエラー処理 *****
  259. 2590 EP=0
  260. 2600 RESUME *EODEF
  261. 2610 *PANEL:'***** タイトルバー表示 *****
  262. 2620 MPMTIME$=PMTIME$
  263. 2630 PMTIME$=TIME$
  264. 2640 IF MPMTIME$=PMTIME$ THEN RETURN
  265. 2650 XTCNT=0
  266. 2660 IF START=1 AND ((MOUSE(2,0) AND MOUSE(3,1)) OR PTRIG(1)=2) THEN
  267. 2670   ENDMODE=ABS(ENDMODE-1)        '***** 終了モード(MOUSE L+R)*****
  268. 2680   DUMMY=MOUSE(4,1)
  269. 2690 ENDIF
  270. 2700 LOCATE 0,1
  271. 2710 COLOR 12
  272. 2720 IF ENDMODE=0 THEN
  273. 2730   PRINT "  A.Okuyama  Ver 2.01  ";
  274. 2740 ELSE
  275. 2750   PRINT "  検査終了後 電源 OFF  ";
  276. 2760 ENDIF
  277. 2770 COLOR 14
  278. 2780 PRINT "  CD-DA 表面検査 プログラム  ";
  279. 2790 COLOR 12
  280. 2800 PRINT USING "  &      &   &      &  ";DATE$;PMTIME$;
  281. 2810 RETURN
  282. 2820 *COMMENT:'***** コメント表示 *****
  283. 2830 PALETTE 10,[48,0,16]
  284. 2840 GOSUB *COMPRN
  285. 2850 FOR C=0 TO 12
  286. 2860   PALETTE 10,[16*(3+C),16*C,16*(1+C)] '***** コメント色設定 *****
  287. 2870   FOR DUMMY=1 TO 50
  288. 2880     GOSUB *PANEL
  289. 2890   NEXT DUMMY
  290. 2900 NEXT C
  291. 2910 *COMCLS:'***** コメント・フェード・アウト *****
  292. 2920 GOSUB *PANEL
  293. 2930 I$=INKEY$
  294. 2940 IF I$=CHR$(&H18) OR I$=CHR$(&H1B) OR MOUSE(2,1) OR PTRIG(1)=1 THEN
  295. 2950   I$=CHR$(&H1B)
  296. 2960 ELSE
  297. 2970   IF I$="" AND NOT(MOUSE(2,0)) AND NOT(PTRIG(1)=4) THEN *COMCLS
  298. 2980 ENDIF
  299. 2990 FOR C=12 TO 0 STEP -1
  300. 3000   PALETTE 10,[16*(3+C),16*C,16*(1+C)] '***** コメント消去 *****
  301. 3010   COLOR 0
  302. 3020   FOR DUMMY=1 TO 50
  303. 3030     GOSUB *PANEL
  304. 3040   NEXT DUMMY
  305. 3050 NEXT C
  306. 3060 SYMBOL (8*32-4,18*3),COMMENT$(2),1,1,%0
  307. 3070 SYMBOL (8*9,18*5),COMMENT$(4),1,1,%0
  308. 3080 SYMBOL (8*4,18*7),COMMENT$(6),1,1,%0
  309. 3090 SYMBOL (8*1,18*9),COMMENT$(8),1,1,%0
  310. 3100 SYMBOL (8*28+4,18*11),COMMENT$(10),1,1,%0
  311. 3110 FOR C=12 TO 25
  312. 3120   SYMBOL (8*0,18*C),COMMENT$(C-1),1,1,%0
  313. 3130 NEXT C
  314. 3140 RETURN
  315. 3150 *COMPRN:'***** コメント内容 *****
  316. 3160 COMMENT$(0)=""
  317. 3170 COMMENT$(1)=""
  318. 3180 COMMENT$(2)="【 使 用 方 法 】"
  319. 3190 COMMENT$(3)=""
  320. 3200 COMMENT$(4)="[実行][RETURN]キー(マウス左・パッドRUN)を押すと検査を開始します。"
  321. 3210 COMMENT$(5)=""
  322. 3220 COMMENT$(6)="[ESC]キー(マウス右・パッドA)を押すと検査をキャンセルし、次の曲に進みます。"
  323. 3230 COMMENT$(7)=""
  324. 3240 COMMENT$(8)="[TAB]キー(マウス左右・パッドB)を検査中に押すと終了時電源OFFの選択ができます。"
  325. 3250 COMMENT$(9)=""
  326. 3260 COMMENT$(10)="【 使 用 上 の 注 意 】"
  327. 3270 COMMENT$(11)=""
  328. 3280 COMMENT$(12)=" (1)CDドライブ側のエラー訂正機構が働くため単発的な雑音は見逃す場合があります。"
  329. 3290 COMMENT$(13)=" (2)CDドライブ側のバッファの状態によって、対象トラックの直前に傷がある場合な"
  330. 3300 COMMENT$(14)="    どに再生不能と判定する時があります。"
  331. 3310 COMMENT$(15)=" (3)計数検査、秒送り検査、ハード・エラー検出によって傷を判定します。"
  332. 3320 DUMMY$=AKCNV$(RIGHT$(STR$(XSCNT+1),LEN(STR$(XSCNT+1))-1))
  333. 3330 COMMENT$(16)=" (4)時計とCDの秒送りの差を計数し、±"+DUMMY$
  334. 3340 COMMENT$(16)=COMMENT$(16)+"以上変化したとき傷を判定します。"
  335. 3350 DUMMY$=AKCNV$(RIGHT$(STR$(XSCNT),LEN(STR$(XSCNT))-1))
  336. 3360 COMMENT$(17)=" (5)計数の差が0または最大値-"+DUMMY$
  337. 3370 COMMENT$(17)=COMMENT$(17)+"以上のときはトラックの先頭から再実行します。"
  338. 3380 COMMENT$(18)=" (6)時計とCDの秒送りが±1秒を超えてズレたとき傷を判定します。"
  339. 3390 COMMENT$(19)=" (7)トラックの始まりと終わりの十数秒間は計数検査、秒送り検査ができません。"
  340. 3400 IF 1<RETRYMAX THEN
  341. 3410   DUMMY$=AKCNV$(RIGHT$(STR$(RETRYSEC),LEN(STR$(RETRYSEC))-1))
  342. 3420   COMMENT$(20)=" (8)傷を判定した場合、"+DUMMY$
  343. 3430   DUMMY$=AKCNV$(RIGHT$(STR$(RETRYMAX-1),LEN(STR$(RETRYMAX-1))-1))
  344. 3440   COMMENT$(20)=COMMENT$(20)+"秒前またはトラックの先頭から"+DUMMY$
  345. 3450   COMMENT$(20)=COMMENT$(20)+"回再検査します。"
  346. 3460 ELSE
  347. 3470   COMMENT$(20)=" (8)傷を判定した場合、次のトラックに進みます。"
  348. 3480 ENDIF
  349. 3490 COMMENT$(21)=" (9)データ・トラックは検査しません。"
  350. 3500 IF CDCK_LOG THEN
  351. 3510   COMMENT$(22)=" ※ 検査ログは作成しません。"
  352. 3520 ELSE
  353. 3530   COMMENT$(22)=" ※ 検査ログを《"+LOG_FILE$+"》に作成します。"
  354. 3540 ENDIF
  355. 3550 IF WHPSFILE THEN
  356. 3560   COMMENT$(23)=" ※ WHIPS用"
  357. 3570   IF WHPLZW THEN COMMENT$(23)=COMMENT$(23)+"圧縮"
  358. 3580   COMMENT$(23)=COMMENT$(23)+"TIFは作成しません。"
  359. 3590 ELSE
  360. 3600   COMMENT$(23)=" ※ WHIPS用"
  361. 3610   IF WHPLZW THEN COMMENT$(23)=COMMENT$(23)+"圧縮"
  362. 3620   COMMENT$(23)=COMMENT$(23)+"TIFを《"+WHP_FILE$+"》に作成します。"
  363. 3630 ENDIF
  364. 3640 IF WCDLFILE THEN
  365. 3650   COMMENT$(24)=" ※ WHIPS用CDLファイルは編集しません。"
  366. 3660 ELSE
  367. 3670   COMMENT$(24)=" ※《"+CDL_FILE$
  368. 3680   COMMENT$(24)=COMMENT$(24)+"(仮 "+TMP_FILE$+")》を編集します。"
  369. 3690 ENDIF
  370. 3700 'IF CDIMFILE THEN
  371. 3710 '  COMMENT$(24)=""
  372. 3720 'ELSE
  373. 3730 '  COMMENT$(24)=" ※ 16色"
  374. 3740 '  IF IMGLZW THEN COMMENT$(24)=COMMENT$(24)+"圧縮"
  375. 3750 '  COMMENT$(24)=COMMENT$(24)+"TIFを《"+IMG_FILE$+"》に作成します。"
  376. 3760 'ENDIF
  377. 3770 SYMBOL (8*32-4,18*3),COMMENT$(2),1,1,%10
  378. 3780 SYMBOL (8*9,18*5),COMMENT$(4),1,1,%10
  379. 3790 SYMBOL (8*4,18*7),COMMENT$(6),1,1,%10
  380. 3800 SYMBOL (8*1,18*9),COMMENT$(8),1,1,%10
  381. 3810 SYMBOL (8*28+4,18*11),COMMENT$(10),1,1,%10
  382. 3820 FOR C=12 TO 25
  383. 3830     SYMBOL (8*0,18*C),COMMENT$(C-1),1,1,%10
  384. 3840 NEXT C
  385. 3850 RETURN
  386. 3860 *ENDING:'***** エンディング *****
  387. 3870 FOR DUMMY=127 TO 0 STEP -1
  388. 3880  VOL=INT(DUMMY/2)
  389. 3890  OUT &H4E2,VOL
  390. 3900  OUT &H4E3,4 'CD(L)vol.
  391. 3910  OUT &H4E2,VOL
  392. 3920  OUT &H4E3,5 'CD(R)vol.
  393. 3930  IF DUMMY<64 THEN PC=DUMMY/63 ELSE PC=1
  394. 3940  PALETTE  0,[16*3*PC,16*0*PC,16*1*PC] '***** バック・グラウンドの緑色
  395. 3950  PALETTE  1,[16*4*PC,16*1*PC,16*2*PC] '***** 縁の緑色
  396. 3960  PALETTE  2,[16*5*PC,16*2*PC,16*3*PC] '***** 最大記録領域の緑色
  397. 3970  PALETTE  3,[16*5*PC,16*5*PC,16*5*PC] '***** 濃い灰色
  398. 3980  PALETTE  4,[16*1*PC,16*3*PC,16*3*PC] '***** 薄紫
  399. 3990  PALETTE  5,[16*0*PC,16*5*PC,16*5*PC] '***** 紫
  400. 4000  PALETTE  6,[16*6*PC,16*6*PC,16*6*PC] '***** 薄い灰色
  401. 4010  PALETTE  7,[16*0*PC,16*0*PC,16*5*PC] '***** 青(データ・トラック)
  402. 4020  PALETTE  8,[16*7*PC,16*0*PC,16*7*PC] '***** 水(検査中のトラック)
  403. 4030  PALETTE 10,[16*3*PC,16*0*PC,16*1*PC] '***** メッセージ表示
  404. 4040  GOSUB *PANEL
  405. 4050 NEXT DUMMY
  406. 4060 PALETTE 13,[16* 0,16* 0,16* 0]
  407. 4070 PALETTE 14,[16* 0,16* 0,16* 0]
  408. 4080 PALETTE 15,[16* 0,16* 0,16* 0]
  409. 4090 COLOR 7
  410. 4100 CLS
  411. 4110 GOSUB *CDDINIT    '***** CDドライブ初期化 *****
  412. 4120 EP=-1
  413. 4130 CD STOP
  414. 4140 EP=0
  415. 4150 RETURN
  416. 4160 *INF:'***** CDインフォメーション *****
  417. 4170 ON ERROR GOTO *ERRLOOP
  418. 4180 CDINF CDI%
  419. 4190 TOTALFLM=(CDI%(2)*60+CDI%(3))*75+CDI%(4)
  420. 4200 COLOR 7
  421. 4210 LOCATE 0,0
  422. 4220 ON CDI%(1) GOSUB *CD_INF1,*CD_INF2,*CD_INF3
  423. 4230 GOTO *INFJP1
  424. 4240 *CD_INF1:'**********
  425. 4250 PRINT "音楽専用CDです。"
  426. 4260 RETURN
  427. 4270 *CD_INF2:'**********
  428. 4280 COLOR 2
  429. 4290 PRINT "データ専用CDです。このプログラムでは検査できません。"
  430. 4300 COLOR 7
  431. 4310 ETRCOLOR(1)=3
  432. 4320 DVSTFLM(1)=TOTALFLM
  433. 4330 GOSUB *CDVIEW
  434. 4340 RETURN
  435. 4350 *CD_INF3:'**********
  436. 4360 PRINT "音楽・データ共用CDです。"
  437. 4370 RETURN
  438. 4380 *INFJP1:'**********
  439. 4390 IF CDI%(1)=2 THEN *INFJP2
  440. 4400 COLOR 5
  441. 4410 LOCATE 30,0
  442. 4420 PRINT "水色は再生中"
  443. 4430 COLOR 1
  444. 4440 LOCATE 44,0
  445. 4450 PRINT "青色はデータ"
  446. 4460 COLOR 3
  447. 4470 LOCATE 58,0
  448. 4480 PRINT "紫色は再生不能"
  449. 4490 *INFJP2:'**********
  450. 4500 COLOR 7
  451. 4510 LOCATE 0,2
  452. 4520 PRINT USING "《 全### トラック### 分### 秒### フレーム 》";CDI%(5);CDI%(2);CDI%(3);CDI%(4)
  453. 4530 RETURN
  454. 4540 *LPRN:'***** プリント印刷処理 *****
  455. 4550 ON ERROR GOTO *ERRLOOP
  456. 4560 IF CDI%(1)=2 THEN RETURN
  457. 4570 LPRINT DATE$;"  ";TIME$;"   ";
  458. 4580 IF CDI%(1)=1 THEN
  459. 4590     LPRINT "音楽専用CD "
  460. 4600 ELSE
  461. 4610     IF CDI%(1)=3 THEN
  462. 4620         LPRINT "音楽・データ共用CD "
  463. 4630     ENDIF
  464. 4640 ENDIF
  465. 4650 LPRINT USING "全### トラック### 分### 秒### フレームです。";CDI%(5);CDI%(2);CDI%(3);CDI%(4)
  466. 4660 IF ELPRN=0 THEN
  467. 4670     LOCATE 72,0
  468. 4680     COLOR 2
  469. 4690     PRINT "〔印刷〕";
  470. 4700 ENDIF
  471. 4710 RETURN
  472. 4720 *TRKTIME:'***** 各トラック先頭までのフレーム総数 *****
  473. 4730 FOR C=1 TO CDI%(5)
  474. 4740  TSSEC(C)=VAL(LEFT$(CDSTIME$(C),2))*60+INT(VAL(MID$(CDSTIME$(C),4,2))+VAL(RIGHT$(CDSTIME$(C),2))/75+.5!)
  475. 4750  TSSEC=VAL(LEFT$(CDSTIME$(C),2))*60+VAL(MID$(CDSTIME$(C),4,2))
  476. 4760  IF CDI%(5)<C+1 THEN 
  477. 4770    TESEC=CDI%(2)*60+CDI%(3)
  478. 4780  ELSE
  479. 4790    TESEC=VAL(LEFT$(CDSTIME$(C+1),2))*60+VAL(MID$(CDSTIME$(C+1),4,2))
  480. 4800  ENDIF
  481. 4810  TSFLM=VAL(RIGHT$(CDSTIME$(C),2))
  482. 4820  IF CDI%(5)<C+1 THEN
  483. 4830    TEFLM=CDI%(4)
  484. 4840  ELSE
  485. 4850    TEFLM=VAL(RIGHT$(CDSTIME$(C+1),2))
  486. 4860  ENDIF
  487. 4870  TRACKSEC=INT(TESEC)-INT(TSSEC)+INT((TEFLM-TSFLM)/75)
  488. 4880  TRKTIME$(C)=RIGHT$(STR$(100+INT(TRACKSEC/60)),2)+":"+RIGHT$(STR$(100+(TRACKSEC MOD 60)),2)+":"+RIGHT$(STR$(100+(75+TEFLM-TSFLM) MOD 75),2)
  489. 4890  DVSTFLM(C-1)=TSSEC(C)*75
  490. 4900 NEXT C
  491. 4910 DVSTFLM(C-1)=TOTALFLM
  492. 4920 RETURN
  493. 4930 *STIME:'***** 1~120曲目の時間表示 *****
  494. 4940 FOR C=1 TO CDI%(5)
  495. 4950     IF 120<C THEN *STJP
  496. 4960     LOCATE 13*INT((C-1)/20),3+C-20*INT((C-1)/20)
  497. 4970     IF C=CDS%(5) THEN
  498. 4980         COLOR 7
  499. 4990         PRINT USING "###*";C;
  500. 5000         COLOR 5-ETRCOLOR(C)*2
  501. 5010     ELSE
  502. 5020         COLOR 6
  503. 5030         PRINT USING "###/";C;
  504. 5040         COLOR 4-ETRCOLOR(C)
  505. 5050     ENDIF
  506. 5060     PRINT TRKTIME$(C)
  507. 5070 *STJP:'**********
  508. 5080 NEXT C
  509. 5090 RETURN
  510. 5100 *START:'***** 検査開始トラック指定 *****
  511. 5110 CKTOTAL=0
  512. 5120 IF CDI%(1)=3 THEN
  513. 5130     STRACK=2
  514. 5140     ETRCOLOR(1)=3
  515. 5150 ELSE
  516. 5160     STRACK=1
  517. 5170 ENDIF
  518. 5180 *ERSTART:'***** 新トラック検査開始 *****
  519. 5190 XTIME=0
  520. 5200 MTIME=0
  521. 5210 RTIME=0
  522. 5220 ONMIN=0
  523. 5230 ONSEC=0
  524. 5240 MOUSE 0
  525. 5250 CDS%(2)=VAL(LEFT$(CDSTIME$(STRACK),2))
  526. 5260 CDS%(3)=VAL(MID$(CDSTIME$(STRACK),4,2))
  527. 5270 CDS%(4)=VAL(RIGHT$(CDSTIME$(STRACK),2))
  528. 5280 CKMIN=VAL(LEFT$(CDSTIME$(STRACK),2))
  529. 5290 CKSEC=VAL(MID$(CDSTIME$(STRACK),4,2))
  530. 5300 CKFLM=VAL(RIGHT$(CDSTIME$(STRACK),2))
  531. 5310 CKTOTAL=CKMIN*60+CKSEC '+CKFLM/75   '***** 指定トラック総合秒数 *****
  532. 5320 COLOR 5
  533. 5330 LOCATE 0,3
  534. 5340 PRINT USING "《 検査実行済### 分### 秒 計数検査OFF 》";CDS%(2);CDS%(3)
  535. 5350 COLOR 5
  536. 5360 LOCATE 41,3
  537. 5370 PRINT USING "### トラック### 分### 秒目(##/##)検査 ";STRACK;ONMIN;ONSEC;RETRY+1;RETRYMAX
  538. 5380 I$=INKEY$
  539. 5390 IF I$=CHR$(27) THEN *ENST           '***** キャンセル(ESC KEY)*****
  540. 5400 IF NOT(MOUSE(2,0)) AND MOUSE(2,1) THEN *ENST  '***** (MOUSE R)*****
  541. 5410 IF PTRIG(1)=1 THEN *ENST                      '***** ( PAD A )*****
  542. 5420 IF I$=CHR$(9) THEN
  543. 5430     ENDMODE=ABS(ENDMODE-1)          '***** 終了モード(TAB KEY)*****
  544. 5440 ENDIF
  545. 5450 ON ERROR GOTO *ERRLOOP
  546. 5460 IF RETRY=0 THEN
  547. 5470     CD PLAY STRACK                  '***** 指定トラック検査開始 *****
  548. 5480 ELSE
  549. 5490     RESTFLM=(CDS%(6)*60+CDS%(7))*75+CDS%(8)-RETRYSEC*75
  550. 5500     IF RESTFLM<0 THEN
  551. 5510         CD PLAY STRACK
  552. 5520     ELSE
  553. 5530         RESTMIN=INT(RESTFLM/60/75)
  554. 5540         RESTSEC=INT(RESTFLM/75-RESTMIN*60)
  555. 5550         RESTFLM=RESTFLM-(RESTMIN*60+RESTSEC)*75
  556. 5560         RTIME=RESTMIN*60+RESTSEC
  557. 5570         RENDMIN=VAL(LEFT$(TRKTIME$(STRACK),2))
  558. 5580         RENDSEC=VAL(MID$(TRKTIME$(STRACK),4,2))
  559. 5590         RENDFLM=VAL(RIGHT$(TRKTIME$(STRACK),2))
  560. 5600         CD PLAY (RESTMIN,RESTSEC,RESTFLM,STRACK)-(RENDMIN,RENDSEC,RENDFLM,STRACK)
  561. 5610     ENDIF
  562. 5620 ENDIF
  563. 5630 CDSTAT CDS%
  564. 5640 DEDUCT=TIME                         '***** DEDUCT=検査開始時刻 *****
  565. 5650 CNTCKN=1
  566. 5660 XTCNTMAX=0
  567. 5670 XMCNT=-1
  568. 5680 CDCK=0
  569. 5690 PMTIME$="24:00:00"
  570. 5700 COLOR 7
  571. 5710 LOCATE 41,2
  572. 5720 PRINT SPACE$(39)
  573. 5730 GOSUB *STIME
  574. 5740 IF CDIMAGE=1 OR 0<RETRY THEN *CHECK
  575. 5750 IF TRKTIME$(CDS%(5))<"01:00:00" THEN
  576. 5760   SYMBOL (DVX-8*17,DVY+160),"《 曲が短いのでイメージは停止中 》",1,1,%15
  577. 5770 ELSE
  578. 5780   GOSUB *CDVIEW
  579. 5790 ENDIF
  580. 5800 *CHECK:'***** 繰り返し検査工程 *****
  581. 5810 ON ERROR GOTO 0
  582. 5820 GOSUB *PANEL
  583. 5830 I$=INKEY$
  584. 5840 IF I$=CHR$(27) THEN *ENST           '***** キャンセル(ESC KEY)*****
  585. 5850 IF NOT(MOUSE(2,0)) AND MOUSE(2,1) THEN *ENST  '***** (MOUSE R)*****
  586. 5860 IF PTRIG(1)=1 THEN *ENST                      '***** ( PAD A )*****
  587. 5870 IF I$=CHR$(9) THEN
  588. 5880     ENDMODE=ABS(ENDMODE-1)          '***** 終了モード(TAB KEY)*****
  589. 5890 ENDIF
  590. 5900 ON ERROR GOTO *ERRLOOP
  591. 5910 ONMIN=CDS%(6)
  592. 5920 ONSEC=CDS%(7)
  593. 5930 CDSTAT CDS%                         '*****   CD演奏状態取得   *****
  594. 5940 XMTIME=XTIME
  595. 5950 XTIME=TIME
  596. 5960 IF XTIME<XMTIME THEN XTIME=XTIME+3600*24  '***** 日替わり調整 *****
  597. 5970 IF CDS%(1)=0 THEN *ENST             '***** 指定トラック検査終了 *****
  598. 5980 CKMIN=CDS%(2)
  599. 5990 CKSEC=CDS%(3)
  600. 6000 CKFLM=CDS%(4)
  601. 6010 '***** 時計とCDの秒送りの差を計数し検査する *****
  602. 6020 IF PONSEC<>ONSEC THEN                  '***** 秒送りあり
  603. 6030     IF XMCNTMAX<XTCNTMAX THEN
  604. 6040          XMCNTMAX=XTCNTMAX             '***** 最大値の基準値を設定
  605. 6050     ENDIF
  606. 6060     XTCNTMAX=0                         '***** 最大値初期化
  607. 6070     XTCNT=0                            '***** 時計秒間計数初期化
  608. 6080 ELSE
  609. 6090     XTCNTMAX=XTCNTMAX+1                '***** 最大値計数
  610. 6100     XTCNT=XTCNT+1                      '***** 時計秒間計数
  611. 6110 ENDIF
  612. 6120 COLOR 5
  613. 6130 LOCATE 30,3
  614. 6140 IF CDCK<CDS%(6)*60+CDS%(7) THEN
  615. 6150     MCDCK=CDCK
  616. 6160     CDCK=CDS%(6)*60+CDS%(7)
  617. 6170     IF CNTCKS<CNTCKN AND (XTCNT=0 OR XMCNTMAX-XSCNT-1<XTCNT) THEN *ERSTART
  618. 6180 ''''IF (XTCNT=0 OR XMCNTMAX-2<XTCNT) AND (XMCNTMAX-2<XMCNT) THEN CNTCKN=1
  619. 6190     IF CNTCKS<CNTCKN THEN
  620. 6200         PRINT USING "###:###";XMCNT;XTCNT;
  621. 6210 ''''''''PRINT XTCNTMAX''''''''
  622. 6220     ELSE
  623. 6230         PRINT "検査OFF"
  624. 6240     ENDIF
  625. 6250     IF -1<XMCNT AND CNTCKS<CNTCKN THEN
  626. 6260         IF XTCNT<XMCNT-XSCNT OR XMCNT+XSCNT<XTCNT THEN ERROR 53
  627. 6270     ELSE
  628. 6280         IF 0<MCDCK THEN
  629. 6290              XMCNT=XTCNT               '***** 基準値設定
  630. 6300              CNTCKN=CNTCKN+1           '***** 基準値設定時間調整
  631. 6310         ENDIF
  632. 6320     ENDIF
  633. 6330 ELSE
  634. 6340     IF CDS%(6)*60+CDS%(7)<CDCK THEN PRINT "検査OFF"
  635. 6350 ENDIF
  636. 6360 '***** トラック間のトラック位置を調整する *****
  637. 6370 IF CKMIN*60+CKSEC+CKFLM/75<CKTOTAL THEN CKTOTAL=-ABS(CKTOTAL)
  638. 6380 '***** CDの秒の切り替わりを検出 *****
  639. 6390 IF MTIME<CDS%(6)*60+CDS%(7)+INT(CDS%(8)/75+.5!) THEN
  640. 6400     MTIME=CDS%(6)*60+CDS%(7)+INT(CDS%(8)/75+.5!)
  641. 6410 ELSE 
  642. 6420 '***** トラック間は検査しない *****
  643. 6430     IF CDS%(6)*60+CDS%(7)+INT(CDS%(8)/75+.5!)<MTIME THEN
  644. 6440         GOTO *RET
  645. 6450     ELSE
  646. 6460         MTIME=MTIME+XTIME-XMTIME
  647. 6470         GOTO *RET
  648. 6480     ENDIF
  649. 6490 ENDIF
  650. 6500 '***** 時計とCDの秒の差を検査する *****
  651. 6510 IF XTIME<DEDUCT+MTIME-RTIME-1 OR DEDUCT+MTIME-RTIME+1<XTIME THEN ERROR 53
  652. 6520 *RET:'**********
  653. 6530 'PRINT USING"XT:#### XMT:#### MT:#### CK:####     ";XTIME-DEDUCT;XMTIME-DEDUCT;MTIME;CDS%(6)*60+CDS%(7)+INT(CDS%(8)/75+.5!) '***CK POINT***
  654. 6540 CKTOTAL=CKMIN*60+CKSEC+CKFLM/75
  655. 6550 IF PONSEC<>ONSEC THEN
  656. 6560   COLOR 5
  657. 6570   LOCATE 0,3
  658. 6580   PRINT USING "《 検査実行済### 分### 秒";CDS%(2);CDS%(3)
  659. 6590   COLOR 13
  660. 6600   LOCATE 41,3
  661. 6610   PRINT USING "### トラック### 分### 秒目(##/##)検査 ";CDS%(5);ONMIN;ONSEC;RETRY+1;RETRYMAX
  662. 6620 ENDIF
  663. 6630 PONSEC=ONSEC
  664. 6640 GOTO *CHECK
  665. 6650 *ENST:'***** 指定トラック検査終了 *****
  666. 6660 STRACK=STRACK+1
  667. 6670 RETRY=0
  668. 6680 IF STRACK<=CDI%(5) THEN 
  669. 6690     GOTO *ERSTART                   '***** 次のトラックを検査 *****
  670. 6700 ELSE
  671. 6710     STRACK=CDI%(5)
  672. 6720 ENDIF
  673. 6730 GOSUB *WHIPSCDL                     '***** WHIPS4.CDL編集 *****
  674. 6740 CDS%(5)=0
  675. 6750 GOSUB *SAVE_IMG                     '***** 16色 TIF保存 *****
  676. 6760 GOSUB *SAVE_WHP                     '***** WHIPS用TIF保存 *****
  677. 6770 GOSUB *CDCK_LOG                     '*****  検査ログ保存  *****
  678. 6780 COLOR 5
  679. 6790 LOCATE 40,2
  680. 6800 PRINT " お疲れさま! 検査は終了しました。      "
  681. 6810 LOCATE 0,3
  682. 6820 PRINT SPACE$(79)
  683. 6830 GOSUB *STIME
  684. 6840 GOSUB *CDVIEW
  685. 6850 RETURN
  686. 6860 *CDVIEW:'***** CD表面イメージ表示 *****
  687. 6870 LINE (DVX-8*17,DVY+160)-(DVX+8*17,DVY+178),PSET,%0,BF,%0
  688. 6880 PKMIN=64
  689. 6890 VTMIN=TOTALFLM/74/60
  690. 6900 IF 1<VTMIN/PKMIN THEN VTMIN=PKMIN
  691. 6910 VFLM=INT(((145^2-70^2)*VTMIN/PKMIN+70^2)^.5!)
  692. 6920 CIRCLE (DVX,DVY),157,%1
  693. 6930 CIRCLE (DVX,DVY),155,%1,,,,F
  694. 6940 CIRCLE (DVX,DVY),148,%2,,,,F
  695. 6950 CIRCLE (DVX,DVY),VFLM,%3,,,,F
  696. 6960 GOSUB *CDCKVIEW
  697. 6970 CIRCLE (DVX,DVY),69,%2,,,,F
  698. 6980 *CDVIEW2:'**********
  699. 6990 CIRCLE (DVX,DVY),63,%1,,,,F
  700. 7000 CIRCLE (DVX,DVY),55,%0,,,,F,PRESET
  701. 7010 CIRCLE (DVX,DVY),52,%1
  702. 7020 CIRCLE (DVX,DVY),48,%1
  703. 7030 CIRCLE (DVX,DVY),35,%1
  704. 7040 CIRCLE (DVX,DVY),22,%1
  705. 7050 CIRCLE (DVX,DVY),20,%1
  706. 7060 RETURN
  707. 7070 *CDCKVIEW:'***** CDチェック箇所イメージ表示 *****
  708. 7080 FOR CDV=CDI%(5) TO 1 STEP -1
  709. 7090 VLFLM=INT(((145^2-70^2)*DVSTFLM(CDV)/74/60/PKMIN+70^2)^.5!*VFLM/((145^2-70^2)*TOTALFLM/74/60/PKMIN+70^2)^.5!+.5!)
  710. 7100 IF ETRCOLOR(CDV)=3 THEN
  711. 7110     CIRCLE (DVX,DVY),VLFLM,%7,,,,F     '***** 青色データ・トラック
  712. 7120     GOTO *CDCKJP1
  713. 7130 ENDIF
  714. 7140 IF ETRCOLOR(CDV)=1 THEN
  715. 7150   IF CDV=INT(CDV/2)*2 THEN
  716. 7160     CIRCLE (DVX,DVY),VLFLM,%4,,,,F     '***** 薄い紫色
  717. 7170     GOTO *CDCKJP1
  718. 7180   ELSE
  719. 7190     CIRCLE (DVX,DVY),VLFLM,%5,,,,F     '***** 濃い紫色
  720. 7200     GOTO *CDCKJP1
  721. 7210   ENDIF
  722. 7220 ENDIF
  723. 7230 IF CDV=CDS%(5) THEN
  724. 7240     CIRCLE (DVX,DVY),VLFLM,%8,,,,F     '***** 水色再生中
  725. 7250     GOTO *CDCKJP1
  726. 7260 ENDIF
  727. 7270 IF CDV=INT(CDV/2)*2 THEN
  728. 7280     CIRCLE (DVX,DVY),VLFLM,%6,,,,F     '***** 薄い灰色
  729. 7290 ELSE
  730. 7300     CIRCLE (DVX,DVY),VLFLM,%3,,,,F     '***** 濃い灰色
  731. 7310 ENDIF
  732. 7320 *CDCKJP1:'**********
  733. 7330 NEXT CDV
  734. 7340 RETURN
  735. 7350 *SAVE_IMG:'***** CDイメージ・ファイル保存 *****
  736. 7360 IF CDIMFILE THEN RETURN
  737. 7370 ON ERROR GOTO *ERRLOOP
  738. 7380 EP=-1
  739. 7390 KILL IMG_FILE$
  740. 7400 EP=2
  741. 7410 SAVE@ IMG_FILE$,(DVX-157,DVY-157)-(DVX+157,DVY+157),1,IMGLZW
  742. 7420 EP=0
  743. 7430 RETURN
  744. 7440 *SAVE_WHP:'***** WHIPS用CDイメージ・ファイル保存実行 *****
  745. 7450 IF WHIPFILE THEN RETURN
  746. 7460 GOSUB *SAVE32K
  747. 7470 LINE (1,18)-(228, 19),PSET,[G(13),R(13),B(13)],BF,[G(13),R(13),B(13)]
  748. 7480 SYMBOL (2,3),"CDCK : "+DATE$+" "+TIME$,1,1,[G(12),R(12),B(12)]
  749. 7490 L=0
  750. 7500 FOR C=1 TO CDI%(5)
  751. 7510   IF ETRCOLOR(C)=1 THEN
  752. 7520     X=2
  753. 7530     Y=20+18*L
  754. 7540     IF L<10 THEN
  755. 7550       SYMBOL (X,Y),ETRTIME$(C),1,1,[G(12),R(12),B(12)]
  756. 7560       L=L+1
  757. 7570     ELSE
  758. 7580       SYMBOL (X,Y),"This CD have over 10 errors.",1,1,[G(15),R(15),B(15)]
  759. 7590     ENDIF
  760. 7600   ENDIF
  761. 7610 NEXT C
  762. 7620 '*TESTSTOP:IF INKEY$="" THEN *TESTSTOP
  763. 7630 ON ERROR GOTO *ERRLOOP
  764. 7640 IF CDCKW$<>WHP_FILE$ THEN
  765. 7650   DIRC=0
  766. 7660 *WHPDIRCK:'***** WHIPS用TIFのディレクトリ・チェック *****
  767. 7670   C=KINSTR(DIRC+1,WHP_FILE$,"\")
  768. 7680   IF 0<C THEN
  769. 7690     DIRC=C
  770. 7700     GOTO *WHPDIRCK
  771. 7710   ENDIF
  772. 7720   CDCKW$=KLEFT$(WHP_FILE$,DIRC)+WHPFTAG$+RIGHT$(STR$(100000+CDLNO),5)+".TIF"
  773. 7730 ENDIF
  774. 7740 EP=-1
  775. 7750 KILL CDCKW$
  776. 7760 EP=3
  777. 7770 SAVE@ CDCKW$,(0,0)-(229,229),,WHPLZW ' 230*230dot Color32K
  778. 7780 EP=0
  779. 7790 COLOR 0,0,0,0
  780. 7800 CLS
  781. 7810 SCREEN 0
  782. 7820 SCREEN@ 0
  783. 7830 VIEW (0,0)-(639,479)
  784. 7840 FOR C=0 TO 15
  785. 7850     PALETTE C,[G(C),R(C),B(C)]
  786. 7860 NEXT C
  787. 7870 PMTIME$="24:00:00"
  788. 7880 COLOR 0,%0,%0
  789. 7890 CLS
  790. 7900 GOSUB *PANEL
  791. 7910 LINE (0,19)-(639, 25),PSET,%13,BF,%13
  792. 7920 LINE (0,26)-(639, 29),PSET,%14,BF,%14
  793. 7930 LINE (0,30)-(639, 37),PSET,%15,BF,%15
  794. 7940 GOSUB *INF
  795. 7950 RETURN
  796. 7960 *SAVE32K:'***** WHIPS用CDイメージ・ファイル保存 *****
  797. 7970 LINE (0,0)-(639,479),PSET,%0,BF,%0 '***** ページ0消去
  798. 7980 SCREEN 1,1,2,1                     '***** ページ1表示開始
  799. 7990 SCREEN@ 1                          '***** 32K色設定
  800. 8000 VIEW (0,0)-(319,239)
  801. 8010 COLOR 0,[G(0),R(0),B(0)],[G(0),R(0),B(0)]
  802. 8020 CLS 5
  803. 8030 *CD32K:'***** WHIPS用CD表面イメージ表示 *****
  804. 8040 PKMIN=64
  805. 8050 VTMIN=TOTALFLM/74/60
  806. 8060 IF 1<VTMIN/PKMIN THEN VTMIN=PKMIN
  807. 8070 VFLM=INT(((145^2-70^2)*VTMIN/PKMIN+70^2)^.5!)
  808. 8080 CIRCLE (157,157),157,[G(1),R(1),B(1)]
  809. 8090 CIRCLE (157,157),155,[G(1),R(1),B(1)],,,,F
  810. 8100 CIRCLE (157,157),148,[G(2),R(2),B(2)],,,,F
  811. 8110 CIRCLE (157,157),VFLM,[G(3),R(3),B(3)],,,,F
  812. 8120 GOSUB *CDCK32K
  813. 8130 CIRCLE (157,157),69,[G(2),R(2),B(2)],,,,F
  814. 8140 *CD32K2:'**********
  815. 8150 CIRCLE (157,157),63,[G(1),R(1),B(1)],,,,F
  816. 8160 CIRCLE (157,157),55,[G(0),R(0),B(0)],,,,F,PRESET
  817. 8170 CIRCLE (157,157),52,[G(1),R(1),B(1)]
  818. 8180 CIRCLE (157,157),48,[G(1),R(1),B(1)]
  819. 8190 CIRCLE (157,157),35,[G(1),R(1),B(1)]
  820. 8200 CIRCLE (157,157),22,[G(1),R(1),B(1)]
  821. 8210 CIRCLE (157,157),20,[G(1),R(1),B(1)]
  822. 8220 RETURN
  823. 8230 *CDCK32K:'***** 32K色CDチェック箇所イメージ表示 *****
  824. 8240 FOR CDV=CDI%(5) TO 1 STEP -1
  825. 8250 VLFLM=INT(((145^2-70^2)*DVSTFLM(CDV)/74/60/PKMIN+70^2)^.5!*VFLM/((145^2-70^2)*TOTALFLM/74/60/PKMIN+70^2)^.5!+.5!)
  826. 8260 IF ETRCOLOR(CDV)=3 THEN
  827. 8270     CIRCLE (157,157),VLFLM,[G(7),R(7),B(7)],,,,F     '***** 青色
  828. 8280     GOTO *CDCK32KJ
  829. 8290 ENDIF
  830. 8300 IF ETRCOLOR(CDV)=1 THEN
  831. 8310   IF CDV=INT(CDV/2)*2 THEN
  832. 8320     CIRCLE (157,157),VLFLM,[G(4),R(4),B(4)],,,,F     '***** 薄い紫色
  833. 8330     GOTO *CDCK32KJ
  834. 8340   ELSE
  835. 8350     CIRCLE (157,157),VLFLM,[G(5),R(5),B(5)],,,,F     '***** 濃い紫色
  836. 8360     GOTO *CDCK32KJ
  837. 8370   ENDIF
  838. 8380 ENDIF
  839. 8390 IF CDV=CDS%(5) THEN
  840. 8400     CIRCLE (157,157),VLFLM,[G(8),R(8),B(8)],,,,F     '***** 水色
  841. 8410     GOTO *CDCK32KJ
  842. 8420 ENDIF
  843. 8430 IF CDV=INT(CDV/2)*2 THEN
  844. 8440     CIRCLE (157,157),VLFLM,[G(6),R(6),B(6)],,,,F     '***** 薄い灰色
  845. 8450 ELSE
  846. 8460     CIRCLE (157,157),VLFLM,[G(3),R(3),B(3)],,,,F     '***** 濃い灰色
  847. 8470 ENDIF
  848. 8480 *CDCK32KJ:'**********
  849. 8490 NEXT CDV
  850. 8500 RETURN
  851. 8510 *WHIPSCDL:'***** WHIPS4.CDL自動編集 *****
  852. 8520 ON ERROR GOTO *ERRLOOP
  853. 8530 DIRC=0
  854. 8540 *WHPDIR:'***** WHP_FILE$のディレクトリ部分のバイト数 *****
  855. 8550 C=KINSTR(DIRC+1,WHP_FILE$,"\")
  856. 8560 IF 0<C THEN
  857. 8570   DIRC=C
  858. 8580   GOTO *WHPDIR
  859. 8590 ENDIF
  860. 8600 '*************************************
  861. 8610   IF WHIPFILE OR WCDLFILE THEN RETURN
  862. 8620 '*************************************
  863. 8630 LINE (DVX-8*17,DVY+160)-(DVX+8*17,DVY+178),PSET,%0,BF,%0
  864. 8640 SYMBOL (DVX-8*17,DVY+160),"《WHIPS用CDLファイルを編集中です》",1,1,%15
  865. 8650 '***** WHIPS用TIFファイル・ネーム・タグ(3BYTE)抽出 *****
  866. 8660 CDLMAX=0
  867. 8670 IF DIRC THEN
  868. 8680   DUMMY$=KMID$(WHP_FILE$,DIRC+1,KLEN(WHP_FILE$)-DIRC+1)
  869. 8690 ELSE
  870. 8700   DUMMY$=WHP_FILE$
  871. 8710 ENDIF
  872. 8720 DUMMY=KINSTR(DUMMY$,".")
  873. 8730 IF DUMMY<2 AND DUMMY$<>"" THEN '***** ワイルドカードが "*" or ".*"
  874. 8740   WHPFTAG$="CKW"
  875. 8750 ELSE
  876. 8760   IF DUMMY THEN                '***** ワイルドカードが "*.*" or "*."
  877. 8770     DUMMY$=KLEFT$(DUMMY$,DUMMY-1)
  878. 8780   ENDIF
  879. 8790   IF LEN(DUMMY$)<4 THEN
  880. 8800     WHPFTAG$=LEFT$(DUMMY$+"___",3)    '***** DUMMY$が3バイト以内
  881. 8810   ELSE
  882. 8820     IF KTYPE(MID$(DUMMY$,3,2),1) THEN '***** 3バイト目が2バイト文字
  883. 8830       WHPFTAG$=LEFT$(DUMMY$,2)+"_"
  884. 8840     ELSE
  885. 8850       WHPFTAG$=LEFT$(DUMMY$,3)        '***** 3バイト目が1バイト文字
  886. 8860     ENDIF
  887. 8870   ENDIF
  888. 8880 ENDIF
  889. 8890 EP=4 '===== 元CDLファイル入力オープン =====
  890. 8900 OPEN CDL_FILE$ FOR INPUT AS #1
  891. 8910 IF EP=-1 THEN '***** CDLファイルが無い
  892. 8920   IF CDLEDT THEN
  893. 8930     CDLCNT=0 ' 新規CDLは追加しない
  894. 8940     CDLNO=0
  895. 8950     GOTO *EOCDLAPP
  896. 8960   ENDIF
  897. 8970   CDLCNT=1 ' 新規CDLは追加する
  898. 8980   CDLNO=1
  899. 8990   GOTO *EOCDLCK
  900. 9000 ENDIF
  901. 9010 EP=-1
  902. 9020 KILL TMP_FILE$
  903. 9030 EP=5 '===== 仮CDLファイル出力オープン =====
  904. 9040 OPEN TMP_FILE$ FOR OUTPUT AS #2
  905. 9050 '==========================================
  906. 9060 IF EOF(1) THEN *EOCDLCK
  907. 9070 LINE INPUT#1,DUMMY$
  908. 9080 PRINT #2,DUMMY$
  909. 9090 CDLMAX=VAL(DUMMY$)
  910. 9100 CDLCNT=0
  911. 9110 CDLNO=0
  912. 9120 GOSUB *CDL_INZ
  913. 9130 *CDLCK1:'**********
  914. 9140 IF EOF(1) THEN *EOCDLCK
  915. 9150 LINE INPUT#1,DUMMY$
  916. 9160 NE=0
  917. 9170 IF CDLNO THEN '***** 対象データ編集後はデータの追記のみ実行 *****
  918. 9180   IF DUMMY$="##" THEN CDLCNT=CDLCNT+1
  919. 9190   PRINT #2,DUMMY$
  920. 9200 ELSE '***** 対象データ検索 *****
  921. 9210   IF DUMMY$<>"##" THEN *EOCDLCK
  922. 9220   LINE INPUT#1,TI$
  923. 9230   LINE INPUT#1,AU$
  924. 9240   LINE INPUT#1,HB$
  925. 9250   LINE INPUT#1,CDLDAY$
  926. 9260   LINE INPUT#1,NO$
  927. 9270   LINE INPUT#1,TIF$
  928. 9280   LINE INPUT#1,WD$
  929. 9290 '***** 既存TIF名がCDCKの作成したものでない時は上書きしない *****
  930. 9300   IF WHPFTAG$+RIGHT$(STR$(100000+CDLMAX-CDLCNT),5)<>TIF$ THEN
  931. 9310     FOR C=1 TO KLEN(TIF$)
  932. 9320       IF KACNV$(KMID$(TIF$,C,1))<>" " THEN NE=1
  933. 9330     NEXT C
  934. 9340   ENDIF
  935. 9350 '***** 既存CDLのトラック数を比較 *****
  936. 9360   IF VAL(NO$)<>CDI%(5) OR NE=1 THEN
  937. 9370     NE=1 '***** 編集対象外のCDデータ *****
  938. 9380     FOR C=1 TO VAL(NO$)
  939. 9390       LINE INPUT#1,CDLTIME$(C)
  940. 9400       LINE INPUT#1,CDLTI$(C)
  941. 9410     NEXT C
  942. 9420   ELSE
  943. 9430 '***** 既存CDLと検査対象CDの各トラック・タイムを比較する *****
  944. 9440     FOR C=1 TO VAL(NO$)
  945. 9450       LINE INPUT#1,CDLTIME$(C)
  946. 9460       LINE INPUT#1,CDLTI$(C)
  947. 9470       MID$(CDLTIME$(C),3)=":"
  948. 9480       DUMMY$=LEFT$(TRKTIME$(C),5)
  949. 9490       DUMMIN=VAL(LEFT$(DUMMY$,2))
  950. 9500       DUMSEC=VAL(RIGHT$(DUMMY$,2))
  951. 9510       DUMSEC=DUMSEC-1 '***** CDLのトラック・タイムはCDSTIME$-1秒の場合がある
  952. 9520       IF DUMSEC<0 THEN
  953. 9530         DUMSEC=59
  954. 9540         DUMMIN=DUMMIN-1
  955. 9550       ENDIF
  956. 9560       DUMMY$=RIGHT$(STR$(100+DUMMIN),2)+":"+RIGHT$(STR$(100+DUMSEC),2)
  957. 9570       IF CDLTIME$(C)<>LEFT$(TRKTIME$(C),5) AND CDLTIME$(C)<>DUMMY$ THEN NE=1
  958. 9580     NEXT C
  959. 9590 '***************************************************************
  960. 9600   ENDIF
  961. 9610   PRINT #2,"##"
  962. 9620   PRINT #2,TI$
  963. 9630   PRINT #2,AU$
  964. 9640   PRINT #2,HB$
  965. 9650   PRINT #2,CDLDAY$
  966. 9660   PRINT #2,NO$
  967. 9670 '***** 編集対象外のデータ *****
  968. 9680   IF NE=1 THEN
  969. 9690     PRINT #2,TIF$
  970. 9700 '***** 編集対象のデータ *****
  971. 9710   ELSE
  972. 9720     CDLEDT=1
  973. 9730     CDLNO=CDLMAX-CDLCNT '***** データ登録番号 *****
  974. 9740     CDCKW$=WHPFTAG$+RIGHT$(STR$(100000+CDLNO),5)
  975. 9750     PRINT #2,CDCKW$     '***** CDL登録TIFファイル名 *****
  976. 9760   ENDIF
  977. 9770   PRINT #2,WD$
  978. 9780   FOR C=1 TO VAL(NO$)
  979. 9790     MID$(CDLTIME$(C),3)="'"
  980. 9800     PRINT #2,CDLTIME$(C)
  981. 9810     PRINT #2,CDLTI$(C)
  982. 9820   NEXT C
  983. 9830   CDLCNT=CDLCNT+1
  984. 9840 ENDIF
  985. 9850 GOTO *CDLCK1
  986. 9860 *EOCDLCK:'***********
  987. 9870 CLOSE #1,#2
  988. 9880 '***** WHIPS用新規CDLファイル作成 *****
  989. 9890 EP=-1
  990. 9900 KILL CDL_FILE$
  991. 9910 EP=6  '===== 新CDLファイル出力オープン =====
  992. 9920 OPEN CDL_FILE$ FOR OUTPUT AS #1
  993. 9930 '===========================================
  994. 9940 PRINT #1,RIGHT$(STR$(100000+CDLMAX+1-CDLEDT),5) '***** CDL登録件数
  995. 9950 '***** 新規登録 *****
  996. 9960 IF CDLEDT=0 THEN
  997. 9970   CDLNO=CDLMAX+1
  998. 9980   NE=1
  999. 9990   PRINT #1,"##"
  1000. 10000   PRINT #1,SPACE$(42)
  1001. 10010   PRINT #1,SPACE$(42)
  1002. 10020   PRINT #1,SPACE$(42)
  1003. 10030   IF LEFT$(DATE$,2)="00" THEN
  1004. 10040     DUMMY$="20"+DATE$
  1005. 10050   ELSE
  1006. 10060     DUMMY$="19"+DATE$
  1007. 10070   ENDIF
  1008. 10080   MID$(DUMMY$,5)="."
  1009. 10090   MID$(DUMMY$,8)="."
  1010. 10100   PRINT #1,DUMMY$
  1011. 10110   PRINT #1,USING "##";CDI%(5)
  1012. 10120   CDCKW$=WHPFTAG$+RIGHT$(STR$(100000+CDLNO),5)
  1013. 10130   PRINT #1,CDCKW$
  1014. 10140   PRINT #1,SPACE$(6)
  1015. 10150   FOR C=1 TO CDI%(5)
  1016. 10160     DUMMY$=LEFT$(TRKTIME$(C),5)
  1017. 10170     MID$(DUMMY$,3)="'"
  1018. 10180     PRINT #1,DUMMY$
  1019. 10190     DUMMY$=".. Music No."+RIGHT$(STR$(C),2)+" .."+SPACE$(25)
  1020. 10200     PRINT #1,DUMMY$
  1021. 10210   NEXT C
  1022. 10220   IF CDLMAX=0 THEN '***** 元のCDLが無く、新規CDL作成完了 *****
  1023. 10230     CLOSE #1
  1024. 10240     RETURN
  1025. 10250   ENDIF
  1026. 10260 ENDIF
  1027. 10270 *CDLAPP:'***** 仮CDLファイルを新規CDLファイルに追加 *****
  1028. 10280 CLOSE #2
  1029. 10290 EP=7  '===== 仮CDLファイル入力オープン =====
  1030. 10300 OPEN TMP_FILE$ FOR INPUT AS #2
  1031. 10310 '===========================================
  1032. 10320 IF EOF(2) THEN *EOCDLAPP
  1033. 10330 LINE INPUT#2,DUMMY$
  1034. 10340 *CDLAPPLP:'*****
  1035. 10350 IF EOF(2) THEN *EOCDLAPP
  1036. 10360 LINE INPUT#2,DUMMY$
  1037. 10370 PRINT #1,DUMMY$
  1038. 10380 GOTO *CDLAPPLP
  1039. 10390 *EOCDLAPP:'*****
  1040. 10400 EP=0
  1041. 10410 CLOSE
  1042. 10420 RETURN
  1043. 10430 *CDL_INZ:'***** CDL読み込み変数初期化 *****
  1044. 10440 TI$=""
  1045. 10450 AU$=""
  1046. 10460 HB$=""
  1047. 10470 CDLDAY$=""
  1048. 10480 NO$=""
  1049. 10490 TIF$=""
  1050. 10500 WD$=""
  1051. 10510 FOR C=0 TO MTR
  1052. 10520   CDLTIME$(C)=""
  1053. 10530   CDLTI$(C)=""
  1054. 10540 NEXT C
  1055. 10550 RETURN
  1056. 10560 *CDCK_LOG:'***** 検査LOG *****
  1057. 10570 IF CDCK_LOG THEN RETURN
  1058. 10580 ON ERROR GOTO *ERRLOOP
  1059. 10590 IF CDLNO=0 AND WCDLFILE=0 THEN GOSUB *CDL_INZ
  1060. 10600 EP=8
  1061. 10610 OPEN LOG_FILE$ FOR APPEND AS #1
  1062. 10620 IF CDI%(1)=1 THEN
  1063. 10630   PRINT #1,"《音楽専用";
  1064. 10640 ELSE
  1065. 10650   IF CDI%(1)=3 THEN
  1066. 10660     PRINT #1,"《データ共用";
  1067. 10670   ENDIF
  1068. 10680 ENDIF
  1069. 10690 PRINT #1,"CD傷検査(";DATE$;"-";TIME$;")》"
  1070. 10700 IF WHIPFILE=0 THEN
  1071. 10710   DUMMY$=TI$
  1072. 10720   GOSUB *RTRIM
  1073. 10730   IF DUMMY$="" THEN
  1074. 10740     PRINT #1,"(タイトル未登録)"
  1075. 10750   ELSE
  1076. 10760     PRINT #1,DUMMY$
  1077. 10770   ENDIF
  1078. 10780   DUMMY$=AU$
  1079. 10790   GOSUB *RTRIM
  1080. 10800   IF DUMMY$="" THEN
  1081. 10810     PRINT #1,"(責任表示未登録)"
  1082. 10820   ELSE
  1083. 10830     PRINT #1,DUMMY$
  1084. 10840   ENDIF
  1085. 10850   DUMMY$=HB$
  1086. 10860   GOSUB *RTRIM
  1087. 10870   IF DUMMY$="" THEN
  1088. 10880     PRINT #1,"(発売番号未登録)"
  1089. 10890   ELSE
  1090. 10900     PRINT #1,DUMMY$
  1091. 10910   ENDIF
  1092. 10920   PRINT #1,"《";CDCKW$;"》"
  1093. 10930 ENDIF
  1094. 10940 PRINT #1,USING "【Total:###トラック ##m##s##フレーム(s/75)】";CDI%(5);CDI%(2);CDI%(3);CDI%(4)
  1095. 10950 FOR C=1 TO CDI%(5)
  1096. 10960   PRINT #1,USING"###/&      &";C;TRKTIME$(C);
  1097. 10970   IF ETRTIME$(C)="" THEN
  1098. 10980     PRINT #1,""
  1099. 10990   ELSE
  1100. 11000     PRINT #1," ←<<< ";RIGHT$(ETRTIME$(C),20);"付近に傷あり"
  1101. 11010   ENDIF
  1102. 11020   IF CDLTI$(C)<>"" THEN
  1103. 11030     PRINT #1,"   (";CDLTIME$(C);")";
  1104. 11040     DUMMY$=CDLTI$(C)
  1105. 11050     GOSUB *RTRIM
  1106. 11060     IF DUMMY$="" THEN
  1107. 11070       PRINT #1,""
  1108. 11080     ELSE
  1109. 11090       PRINT #1,"  ";DUMMY$
  1110. 11100     ENDIF
  1111. 11110   ENDIF
  1112. 11120 NEXT C
  1113. 11130 PRINT #1,""
  1114. 11140 *EOLOG:'***** END OF LOG *****
  1115. 11150 EP=0
  1116. 11160 CLOSE #1
  1117. 11170 RETURN
  1118. 11180 *RTRIM:'***** 右側空白削除 *****
  1119. 11190 DUMMY=0
  1120. 11200 FOR CC=1 TO KLEN(DUMMY$)
  1121. 11210   IF KACNV$(KMID$(DUMMY$,CC,1))<>" " THEN DUMMY=CC
  1122. 11220 NEXT CC
  1123. 11230 IF KLEFT$(DUMMY$,DUMMY)="" THEN
  1124. 11240   DUMMY$=""
  1125. 11250 ELSE
  1126. 11260   DUMMY$=KLEFT$(DUMMY$,DUMMY)
  1127. 11270 ENDIF
  1128. 11280 RETURN
  1129. 11290 *CDDINIT:'***** CDドライブ初期化
  1130. 11300  OUT &H04C0,&HC7
  1131. 11310  OUT &H04C0,&H03
  1132. 11320 RETURN
  1133. 11330 *ERRLOOP:'***** エラー処理ルーチン *****
  1134. 11340 IF EP=-2 THEN LOCATE 40,0:PRINT ERR;ERL:STOP
  1135. 11350 IF EP=-1 THEN
  1136. 11360   EP=0
  1137. 11370   RESUME NEXT
  1138. 11380 ENDIF
  1139. 11390 IF EP=1 THEN *ERRLOOP1
  1140. 11400 IF EP=2 THEN *ERRLOOP2
  1141. 11410 IF EP=3 THEN *ERRLOOP3
  1142. 11420 IF EP=4 THEN *ERRLOOP4
  1143. 11430 IF EP=5 THEN *ERRLOOP5
  1144. 11440 IF EP=6 THEN *ERRLOOP6
  1145. 11450 IF EP=7 THEN *ERRLOOP7
  1146. 11460 IF EP=8 THEN *ERRLOOP8
  1147. 11470 COLOR 2
  1148. 11480 IF LPRN=1 THEN
  1149. 11490   ELPRN=1
  1150. 11500   LOCATE 41,2
  1151. 11510   COLOR 10
  1152. 11520   PRINT "  《 印刷機能は停止しています 》  "
  1153. 11530   RESUME NEXT
  1154. 11540 ENDIF
  1155. 11550 LOCATE 41,2
  1156. 11560 PRINT USING "### トラック### 分### 秒目付近が再生不能 ";STRACK;ONMIN;ONSEC
  1157. 11570 GOSUB *CDDINIT
  1158. 11580 IF RETRY+1<RETRYMAX THEN
  1159. 11590   RETRY=RETRY+1
  1160. 11600   LINE (DVX-8*17,DVY+160)-(DVX+8*17,DVY+178),PSET,%0,BF,%0
  1161. 11610   SYMBOL (DVX-8*17,DVY+160),"《 再検査中イメージを停止します 》",1,1,%15
  1162. 11620   RESUME *ERSTART
  1163. 11630 ENDIF
  1164. 11640 RETRY=0
  1165. 11650 IF CDI%(5)<STRACK THEN
  1166. 11660   STRACK=CDI%(5)
  1167. 11670   RESUME *ENST
  1168. 11680 ENDIF
  1169. 11690 IF ELPRN=0 THEN LPRINT USING "###トラック###分###秒目(トータル###分###秒目)付近に傷があります。";STRACK;ONMIN;ONSEC;CKMIN;CKSEC
  1170. 11700 IF CDS%(5)=CDI%(5) THEN 
  1171. 11710   ETRCOLOR(CDI%(5))=1
  1172. 11720   ETRTIME$(CDI%(5))=RIGHT$("    "+STR$(STRACK),4)+"/"+RIGHT$(STR$(ONMIN),2)+"m"+RIGHT$(STR$(100+ONSEC),2)+"s(Total:"+RIGHT$(STR$(CKMIN),2)+"m"+RIGHT$(STR$(100+CKSEC),2)+"s)"
  1173. 11730   GOSUB *STIME
  1174. 11740   RESUME *ENST
  1175. 11750 ELSE
  1176. 11760   ETRCOLOR(STRACK)=1
  1177. 11770   ETRTIME$(STRACK)=RIGHT$("    "+STR$(STRACK),4)+"/"+RIGHT$(STR$(ONMIN),2)+"m"+RIGHT$(STR$(100+ONSEC),2)+"s(Total:"+RIGHT$(STR$(CKMIN),2)+"m"+RIGHT$(STR$(100+CKSEC),2)+"s)"
  1178. 11780   STRACK=STRACK+1
  1179. 11790   CDS%(5)=STRACK
  1180. 11800   CKMIN=CDS%(2)
  1181. 11810   CKSEC=CDS%(3)
  1182. 11820   CKFLM=CDS%(4)
  1183. 11830 ENDIF
  1184. 11840 GOSUB *STIME
  1185. 11850 RESUME *ERSTART
  1186. 11860 *ERRLOOP1:'***** CD未挿入 *****
  1187. 11870 COLOR 10
  1188. 11880 LOCATE 24,12
  1189. 11890 PRINT " 《 CDをセットしてください 》 "
  1190. 11900 GOSUB *ERPAUSE
  1191. 11910 COLOR 0
  1192. 11920 LOCATE 24,12
  1193. 11930 PRINT SPACE$(32)
  1194. 11940 START=0
  1195. 11950 EP=0
  1196. 11960 RESUME *MAIN
  1197. 11970 *ERRLOOP2:'***** CDイメージ・ファイル消去 *****
  1198. 11980 COLOR 10
  1199. 11990 LOCATE 14,12
  1200. 12000 PRINT " 《 CDイメージ・ファイルは作成できませんでした 》 "
  1201. 12010 GOSUB *ERPAUSE
  1202. 12020 COLOR 0
  1203. 12030 LOCATE 14,12
  1204. 12040 PRINT SPACE$(52)
  1205. 12050 RESUME NEXT
  1206. 12060 *ERRLOOP3:'***** WHIPS用CDイメージ・ファイル消去 *****
  1207. 12070 COLOR 10
  1208. 12080 SYMBOL (X,200),SPACE$(28),1,1,[G(0),R(0),B(0)]
  1209. 12090 SYMBOL (X,200),"《WHIPS用TIFは保存不能です》",1,1,[G(15),R(15),B(15)]
  1210. 12100 GOSUB *ERPAUSEG
  1211. 12110 SYMBOL (X,200),SPACE$(28),1,1,[G(0),R(0),B(0)]
  1212. 12120 RESUME NEXT
  1213. 12130 *ERRLOOP4:'***** WHIPS4.CDL無し *****
  1214. 12140 LINE (DVX-8*17,DVY+160)-(DVX+8*17,DVY+178),PSET,%0,BF,%0
  1215. 12150 IF CDLEDT THEN
  1216. 12160   SYMBOL (DVX-8*17,DVY+160),"《WHIPS用CDLファイル編集不能です》",1,1,%15
  1217. 12170 ELSE
  1218. 12180   SYMBOL (DVX-8*17,DVY+160),"《WHIPS用新規CDLファイルを編集中》",1,1,%15
  1219. 12190 ENDIF
  1220. 12200 GOSUB *ERPAUSE
  1221. 12210 EP=-1
  1222. 12220 LINE (DVX-8*17,DVY+160)-(DVX+8*17,DVY+178),PSET,%0,BF,%0
  1223. 12230 RESUME NEXT
  1224. 12240 *ERRLOOP5:'***** WHIPS用仮CDLファイル出力オープンエラー *****
  1225. 12250 LINE (DVX-8*17,DVY+160)-(DVX+8*17,DVY+178),PSET,%0,BF,%0
  1226. 12260 SYMBOL (DVX-8*17,DVY+160),"《WHIPS用仮CDLファイル書込み失敗》",1,1,%15
  1227. 12270 GOSUB *ERPAUSE
  1228. 12280 EP=0
  1229. 12290 LINE (DVX-8*17,DVY+160)-(DVX+8*17,DVY+178),PSET,%0,BF,%0
  1230. 12300 RESUME *EOCDLAPP
  1231. 12310 *ERRLOOP6:'***** WHIPS用新規CDLファイル出力オープンエラー *****
  1232. 12320 LINE (DVX-8*17,DVY+160)-(DVX+8*17,DVY+178),PSET,%0,BF,%0
  1233. 12330 SYMBOL (DVX-8*17,DVY+160),"《WHIPS用CDLファイル書き戻し失敗》",1,1,%15
  1234. 12340 GOSUB *ERPAUSE
  1235. 12350 EP=0
  1236. 12360 LINE (DVX-8*17,DVY+160)-(DVX+8*17,DVY+178),PSET,%0,BF,%0
  1237. 12370 RESUME *EOCDLAPP
  1238. 12380 *ERRLOOP7:'***** WHIPS用仮CDLファイル入力オープンエラー *****
  1239. 12390 LINE (DVX-8*17,DVY+160)-(DVX+8*17,DVY+178),PSET,%0,BF,%0
  1240. 12400 SYMBOL (DVX-8*17,DVY+160),"《WHIPS用仮CDLファイル読込み不能》",1,1,%15
  1241. 12410 GOSUB *ERPAUSE
  1242. 12420 EP=0
  1243. 12430 LINE (DVX-8*17,DVY+160)-(DVX+8*17,DVY+178),PSET,%0,BF,%0
  1244. 12440 RESUME *EOCDLAPP
  1245. 12450 *ERRLOOP8:'***** 検査LOG書き込みエラー *****
  1246. 12460 LINE (DVX-8*17,DVY+160)-(DVX+8*17,DVY+178),PSET,%0,BF,%0
  1247. 12470 SYMBOL (DVX-8*17,DVY+160),"《検査LOGファイルは保存不能です》",1,1,%15
  1248. 12480 GOSUB *ERPAUSE
  1249. 12490 LINE (DVX-8*17,DVY+160)-(DVX+8*17,DVY+178),PSET,%0,BF,%0
  1250. 12500 RESUME *EOLOG
  1251. 12510 *ERPAUSE:'***** キー入力待ち一時停止 *****
  1252. 12520 C=0
  1253. 12530 *ERP1:'**********
  1254. 12540 GOSUB *PANEL
  1255. 12550 I$=INKEY$
  1256. 12560 IF 1000<C OR I$<>"" OR MOUSE(2,0) OR MOUSE(2,1) OR PAD(1) OR PTRIG(1) THEN *ERP2
  1257. 12570 C=C+1
  1258. 12580 GOTO *ERP1
  1259. 12590 *ERP2:'**********
  1260. 12600 C=0
  1261. 12610 RETURN
  1262. 12620 *ERPAUSEG:'***** キー入力待ち一時停止(GOSUB *PANEL 無し)*****
  1263. 12630 C=0
  1264. 12640 *ERPG1:'**********
  1265. 12650 I$=INKEY$
  1266. 12660 IF 2000<C OR I$<>"" OR MOUSE(2,0) OR MOUSE(2,1) OR PAD(1) OR PTRIG(1) THEN *ERPG2
  1267. 12670 C=C+1
  1268. 12680 GOTO *ERPG1
  1269. 12690 *ERPG2:'**********
  1270. 12700 C=0
  1271. 12710 RETURN
  1272.